namespace vue0701.Domain.Reposoitiories;

using vue0701.Domain.Common;

public interface IRepository<T>
{
    Task<IEnumerable<T>> GetAllAsync();
     Task<PagedResult<T>> GetPagedAsync(int pageIndex, int pageSize);
    Task<T?> GetByIdAsync(Guid id);
    Task<T> CreateAsync(T entity);
    Task UpdateAsync(T entity);
    Task DeleteAsync(T entity);
    Task DeleteAsync(Guid id);
    Task DeleteHardAsync(Guid id);

}